﻿using BenCaoXuan.Infrastructure.Attr;
using BenCaoXuan.Infrastructure.Dto;
using BenCaoXuan.Infrastructure.Dto.Admin.product;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BenCaoXuan.Service.Interface.admin
{
    [Provider_]
    public interface I_Product_Service
    {
        /// <summary>
        /// 新增产品
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Add_Product(AddProduct_Dto dto);

        /// <summary>
        /// 新增产品的文章
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Add_ProductArticle(AddProductArticle_Dto dto);

        /// <summary>
        /// 创建产品套餐
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Add_ProductPackage(AddProductPackage_Dto dto);

        /// <summary>
        /// 切换产品状态
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> ChangeIsBan_Product(IsBan_Dto dto);
        /// <summary>
        /// 切换产品套餐状态
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> ChangeIsBan_ProductPackage(IsBan_Dto dto);
        
        /// <summary>
        /// 切换产品文章的发布下架
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> ChangeIsPublish_ProductPackage(IsBan_Dto dto);

        /// <summary>
        /// 删除产品
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Delete_Product(Delete_Dto dto);

        /// <summary>
        /// 获取产品
        /// </summary>
        /// <param name="fenye_Dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_Product(Fenye_Dto fenye_Dto);


        /// <summary>
        /// 获取产品文章
        /// </summary>
        /// <param name="fenye_Dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_ProductArticle(Fenye_Dto fenye_Dto);

      
      /// <summary>
      /// 获取所有产品套餐
      /// </summary>
      /// <param name="fenye_Dto"></param>
      /// <returns></returns>
        Task<Api_Result_Dto> Get_ProductPackage(Fenye_Dto fenye_Dto);

        /// <summary>
        /// 获取所有的产品套餐可选的产品
        /// </summary>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_ProductPackageBy_Product();

        /// <summary>
        /// 停止套餐
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Stop_ProductPackage(string? id);

        /// <summary>
        /// 编辑产品
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Update_Product(UpdateProduct_Dto dto);
      
        /// <summary>
        /// 编辑产品套餐
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Update_ProductPackage(UpdateProfuctPackage_Dto dto);
    }
}
